1. Field of the Invention
The present invention relates to the field of computer operating systems and in particular to managing their performance problems. More particularly, it relates to a method and system for automatically determining performance problems due to a metric indicating a current memory peak load in the computer system.
2. Description of the Related Art
In the current version of the IBM z/OS operating system, the hardware main memory is structured into memory frames. Each frame has 4096 bytes. The z/OS software splits the virtual memory into pages wherein each page has 4096 bytes. If a page is in use, i.e. it contains data, then the page is “backed” in a hardware frame or stolen and on a page device (slot). The relation between a page and a frame is done via the page frame table. The page frame table has an entry for each page, which contains page-related information, e.g. frame address, and page UIC (“unreferenced interval counts”). In this operating system, such above-mentioned metric is used based on a frame age determination in order to determine performance problems and to determine whether or not additional main memory storage should be used in order to get a better instruction processing having a better throughput through the central processing units (CPUs) interacting closely with the main memory.
FIG. 1 illustrates the most essential components used in this system:
The main memory 10 is shown to comprise a plurality of adjacent frames of which one is depicted with reference sign 14.
A timed “UIC update” process 20 runs every 10 seconds and calculates address space “unreferenced interval counts” (abbreviated herein as “UICs”) for all address spaces. These address space UICs are then stored 28 in an address space frame age table 18.
The address space frame age table 18 gets then scanned (see arrow 31 by the “UIC update” process) for the highest address space UIC. The highest address space UIC value is then used (see step 30) as the “age” of the oldest frame.
A prior art stealing routine 16 employing a least recently used page replacement algorithm “steals” frames (see arrows 11) if the system has a need for new frames, but isn't required to calculate the age of the oldest frame. The stealing routine 16 actually uses (see arrow 26) the information of the oldest frame stored in the address space frame age table 18 to optimize the stealing.
In more detail, in the above-mentioned z/OS operating system implementation the before-mentioned metric is referred to as “system-high UIC”. A prior art system routine 20 referred to as the “UIC update” process, runs every 10 seconds through all of the present memory pages, i.e. traverses the complete main memory by address spaces, and checks each page to determine whether the related frame has the reference bit set. If set, a UIC counter in the page frame table is reset to 0. If the reference bit is OFF, this UIC counter is increased, representing an increase of “frame age” of the frame. The highest counter of an address space-related frame is then stored as address space UIC in a table. After all memory pages have been processed like that, a “system-high UIC” value is set equal to the highest address space UIC value.
Disadvantageously, the calculation of the “single frame-based” UIC is a very time consuming process. The larger main memory is designed, the more frames must be tested for age determination. Thus, in the course of historical memory increase, the interval time for the “UIC update” run was already changed in the before-mentioned system from 1 second to 10 seconds in order to achieve a reasonable tradeoff between system performance usability and system performance overhead. Thus, disadvantageously, when the main memory is designed larger, which is a globally prevailing trend, there is a strong need for a new frame age determination consuming less CPU time in order to have a metric for determination of system performance problems.